#include <mips/regdef.h>
#include <sys/syscall.h>

	.text
	.align 	2
	.global main
	.ent 	main

main:
	.frame	$fp,40,ra

	.set noreorder
	.cpload	t9
	.set reorder

	subu	sp,sp,40

	# Guardo los registros
	.cprestore 24
	sw	ra,32(sp)
	sw	$fp,28(sp)
	move	$fp,sp

	# Guardo el puntero
	sw	zero, 16($fp)	// length result
	
	# Calculamos la longitud del string.
	la	a0, str_input
	jal	length
	sw      v0, 16($fp)
	
	# Imprimo el resultado por pantalla
	li	v0, SYS_write 
	li	a0, 1
	la	a1, str_input
	lw	a2, 16($fp)
	syscall	

main_return:
	# destruyo el stack
	move	sp, $fp
	lw	$fp, 28(sp)
	lw	ra,  32(sp)
	addu	sp, sp, 40

	j	ra
	.end	main
	
	.rdata
str_input:
	.asciiz	"prueba123456789\n"
